/* 
 * 2020年11月3日12点45分
 * 作者：ZQD
 * 本程序是为了比较递归和循环的差别，分别用循环和递归实现了打印从1到N
 * 当N = 10000时，递归已经崩溃，循环没有问题
 * 总结：当既能用递归也能用循环实现时，若数据量过大，推荐使用循环，不要使用递归
*/

#include <stdio.h>

void PrintN(int N);

int main(void)
{
    int N;
    scanf("%d", &N);
    PrintN(N);
    return 0;
}

void PrintN(int N)
{
    // 利用循环实现打印1到N
    int i;
    for (i = 1; i <= N; i++)
    {
        printf("%d\n", i);
    }
    return;
}

/* void PrintN(int N)
{
    // 利用递归实现打印1到N
    if (N)
    {
        PrintN(N - 1);
        printf("%d\n", N);
    }
    return;
} */